home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / andere sprachen / perl5 / perl5.002 / hints / linux.sh < prev    next >
Encoding:
Text File  |  1996-02-28  |  3.9 KB  |  132 lines

  1. # hints/linux.sh
  2. # Original version by rsanders
  3. # Additional support by Kenneth Albanowski <kjahds@kjahds.com>
  4. #
  5. # ELF support by H.J. Lu <hjl@nynexst.com>
  6. # Additional info from Nigel Head <nhead@ESOC.bitnet>
  7. # and Kenneth Albanowski <kjahds@kjahds.com>
  8. #
  9. # Consolidated by Andy Dougherty <doughera@lafcol.lafayette.edu>
  10. #
  11. # Updated Thu Feb  8 11:56:10 EST 1996
  12. # Add ability to use command-line overrides for optinal settings.
  13.  
  14. # perl goes into the /usr tree.  See the Filesystem Standard
  15. # available via anonymous FTP at tsx-11.mit.edu in
  16. # /pub/linux/docs/linux-standards/fsstnd.
  17. # Allow a command line override, e.g. Configure -Dprefix=/foo/bar
  18. case "$prefix" in
  19. '') prefix='/usr' ;;
  20. esac
  21.  
  22. # Perl users typically expect BSD style signal handling.
  23. # This may not be needed in 5.002 since sigaction is used.
  24. # gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool.
  25. ccflags="-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL $ccflags"
  26.  
  27. # Configure may fail to find lstat() since it's a static/inline
  28. # function in <sys/stat.h>.
  29. d_lstat=define
  30.  
  31. # I think Configure gets this right now, but I'd appreciate reports.
  32. malloctype='void *'
  33.  
  34. # Explanation?
  35. case "$usemymalloc" in
  36. '') usemymalloc='n' ;;
  37. esac
  38.  
  39. case "$optimize" in
  40. '') optimize='-O2' ;;
  41. esac
  42.  
  43. # Are we using ELF?  Thanks to Kenneth Albanowski <kjahds@kjahds.com>
  44. # for this test.
  45. cat >try.c <<'EOM'
  46. /* Test for whether ELF binaries are produced */
  47. #include <fcntl.h>
  48. #include <stdlib.h>
  49. main() {
  50.     char buffer[4];
  51.     int i=open("a.out",O_RDONLY);
  52.     if(i==-1)
  53.         exit(1); /* fail */
  54.     if(read(i,&buffer[0],4)<4)
  55.         exit(1); /* fail */
  56.     if(buffer[0] != 127 || buffer[1] != 'E' ||
  57.            buffer[2] != 'L' || buffer[3] != 'F')
  58.         exit(1); /* fail */
  59.     exit(0); /* succeed (yes, it's ELF) */
  60. }
  61. EOM
  62. if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then
  63.     cat <<'EOM'
  64.  
  65. You appear to have ELF support.  I'll try to use it for dynamic loading.
  66. EOM
  67. else
  68.     cat <<'EOM'
  69.  
  70. You don't have an ELF gcc.  I will use dld if possible.  If you are
  71. using a version of DLD earlier than 3.2.6, or don't have it at all, you
  72. should probably upgrade. If you are forced to use 3.2.4, you should
  73. uncomment a couple of lines in hints/linux.sh and restart Configure so
  74. that shared libraries will be disallowed.
  75.  
  76. EOM
  77.     lddlflags="-r $lddlflags"
  78.     # These empty values are so that Configure doesn't put in the
  79.     # Linux ELF values.
  80.     ccdlflags=' '
  81.     cccdlflags=' '
  82.     ccflags="-DOVR_DBL_DIG=14 $ccflags"
  83.     so='sa'
  84.     dlext='o'
  85.     nm_so_opt=' '
  86.     ## If you are using DLD 3.2.4 which does not support shared libs,
  87.     ## uncomment the next two lines:
  88.     #ldflags="-static"
  89.     #so='none'
  90. fi
  91.  
  92. rm -f try.c a.out
  93.  
  94. if /bin/bash -c exit; then
  95.   echo You appear to have a working bash. Good.
  96. else
  97.   cat << 'EOM'
  98. Warning: it would appear you have a defective bash shell installed. This is
  99. likely to give you a failure of op/exec test #5 during the test phase of the
  100. build, Upgrading to a recent version (1.14.4 or later) should fix the
  101. problem.
  102.  
  103. EOM
  104.  
  105. fi
  106.  
  107. # In addition, on some systems there is a problem with perl and NDBM, which
  108. # causes AnyDBM and NDBM_File to lock up. This is evidenced in the tests as
  109. # AnyDBM just freezing.  Currently we disable NDBM for all linux systems.
  110. # If someone can suggest a more robust test, that would be appreciated.
  111. #
  112. # More info:
  113. # Date: Wed, 7 Feb 1996 03:21:04 +0900
  114. # From: Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp>
  115. #
  116. # I tried compiling with DBM support and sure enough things locked up
  117. # just as advertised. Checking into it, I found that the lockup was
  118. # during the call to dbm_open. Not *in* dbm_open -- but between the call
  119. # to and the jump into.
  120. # To make a long story short, making sure that the *.a and *.sa pairs of
  121. #   /usr/lib/lib{m,db,gdbm}.{a,sa}
  122. # were perfectly in sync took care of it.
  123. #
  124. # This will generate a harmless message:
  125. # Hmm...You had some extra variables I don't know about...I'll try to keep 'em.
  126. #    Propagating recommended variable d_dbm_open
  127. case "$d_dbm_open" in
  128. '') d_dbm_open=undef ;;
  129. esac
  130.  
  131.